package com.skycan.plc.adapter.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 统一数据点模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DataPoint {
    /**
     * 设备唯一标识
     */
    private String deviceId;

    /**
     * 数据类型：模拟量输入(AI)/模拟量输出(AO)/数字量输入(DI)/数字量输出(DO)
     */
    private DataType type;

    /**
     * 设备寄存器地址
     */
    private String address;

    /**
     * 值
     */
    private Object value;

    /**
     * 采集时间戳，毫秒级
     */
    private long timestamp;

    /**
     * 数据类型枚举
     */
    public enum DataType {
        AI, // 模拟量输入
        AO, // 模拟量输出
        DI, // 数字量输入
        DO // 数字量输出
    }
}